#include <iostream>
#include <string>
#define  CIRCULAR_SHIFT(num,desplazamiento) (((num)<<(desplazamiento)) | ((num)>>(32-(num))))
#define num_val(num_car) ((unsigned)(num_car) - (unsigned)'0')
#define BASE_CADENA 2
#define CANT_BYTES 8
#define BITS_IN_BYTE 8
#define BASE 2
#define BLOCK_BIT_SIZE 512
#define BLOCK_SIZE (BLOCK_BIT_SIZE/BITS_IN_BYTE)
#define SUB_BLOCK_BIT_SIZE 32
#define SUB_BLOCK_SIZE (SUB_BLOCK_BIT_SIZE/BITS_IN_BYTE)
#define NUM_SUB_BLOCKS (BLOCK_BIT_SIZE/SUB_BLOCK_BIT_SIZE)
#define PRIMER_BYTE_RELLENO 0x80
#define NULL_BYTE 0
#define NUM_FUNC 4
#define EXP 32
#ifndef defs_h
#define defs_h

unsigned convertir_a_num(unsigned char* rep_cad);
unsigned F(unsigned x,unsigned y,unsigned z);
unsigned G(unsigned x,unsigned y,unsigned z);
unsigned H(unsigned x,unsigned y,unsigned z);
unsigned I(unsigned x,unsigned y,unsigned z);
size_t sub_bloque_para_F(size_t& idx);
size_t sub_bloque_para_G(size_t& idx);
size_t sub_bloque_para_H(size_t& idx);
size_t sub_bloque_para_I(size_t& idx);
#endif
